<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
         // call 的应用场景 

         let arr=[1,2,3,100]
         

         //    call('第一个参数是改变的this指向等于这里的第一个参数','传递的参数1','参数2')
        //  let maxVal=Math.max.call(arr)
        //  console.log(maxVal);

        //  let max1=window.Math.max(1,2,3,100)
        //  console.log(max1);

         let maxVal=Math.max.call(null,...arr)
         console.log(maxVal);


         //   apply('第一个参数是改变的this指向等于这里的第一个参数','第二个参数必须是一个数组')
         let maxVal2=Math.max.apply(null,arr)
         console.log(maxVal2);
         let minVal2=Math.min.apply(null,arr)
         console.log(minVal2);

         var obj ={
             names:'刘德华',
             say:function(){
                 alert(1)
                 console.log(this);
                 console.log(this.names);
             }
         }

        //  obj.say()  // 刘德华

        let newFn=obj.say.bind(this) //this 指向谁都可以
        console.log(newFn);

        newFn()
    </script>
</body>
</html>